// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.

import {connect} from 'react-redux';

import {isSystemMessage} from '@mm-redux/utils/post_utils';
import {Client4} from '@mm-redux/client';

import {getTheme} from '@mm-redux/selectors/entities/preferences';
import {getConfig} from '@mm-redux/selectors/entities/general';

import {fromAutoResponder} from 'app/utils/general';

import PostProfilePicture from './post_profile_picture';

import {getUser} from '@mm-redux/selectors/entities/users';

function mapStateToProps(state, ownProps) {
    const config = getConfig(state);
    const post = ownProps.post;
    const user = getUser(state, post.user_id);

    const overrideIconUrl = Client4.getAbsoluteUrl(post?.props?.override_icon_url); // eslint-disable-line camelcase

    return {
        enablePostIconOverride: config.EnablePostIconOverride === 'true' && post?.props?.use_user_icon !== 'true', // eslint-disable-line camelcase
        fromWebHook: post?.props?.from_webhook === 'true', // eslint-disable-line camelcase
        isSystemMessage: isSystemMessage(post),
        fromAutoResponder: fromAutoResponder(post),
        overrideIconUrl,
        userId: post.user_id,
        isBot: (user ? user.is_bot : false),
        isEmoji: Boolean(post?.props?.override_icon_emoji), // eslint-disable-line camelcase
        theme: getTheme(state),
    };
}

export default connect(mapStateToProps)(PostProfilePicture);
